package main

import "fmt"

//var quit chan int = make(chan int)
var quit chan string = make(chan string)

func loop(){
	for i := 0; i < 10; i++{
		fmt.Printf("%d",i)
	}
	//quit <- 0
	quit <- "跑完"
}
//多个goroutine跑loop函数会挨个goroutine去进行，而sleep则是一起执行的。
//这是为什么？默认地， Go所有的goroutines只能在一个线程里跑 。
//并发模式
func main(){
	//开两个goroutine跑函数loop
	go loop()
	go loop()

	for i := 0; i < 2; i++{
		fmt.Println(<- quit)
	}
}
//如果当前goroutine不发生阻塞，它是不会让出CPU给其他goroutine, 所以此处的输出会是一个一个goroutine进行的，而sleep函数则阻塞掉了 当前goroutine,
// 当前goroutine主动让其他goroutine执行, 所以形成了逻辑上的并行, 也就是并发。
